在家庭和公司網(wǎng)絡(luò)中使用的客戶端是請求訪問服務器提供的服務的任何計算機硬件或軟件設(shè)備。客戶端通常被視為 客戶端-服務器 架構(gòu)中的請求程序或用戶。客戶端終端用戶設(shè)備通常包括臺式電腦、筆記本電腦和智能手機。在計算機網(wǎng)絡(luò)中,客戶端-服務器模型中的客戶端是從服務器請求服務或資源的對象。服務器可以位于內(nèi)部或外部。
客戶端如何與服務器交互?
在客戶端-服務器架構(gòu)中,客戶端通過請求客戶端無法提供的數(shù)據(jù)或資源與服務器交互。客戶端和服務器可以位于不同的區(qū)域并通過網(wǎng)絡(luò)連接。它們也可以位于同一臺機器上并通過進程間通信進行連接。
分布式應用程序框架在服務器和客戶端之間劃分任務。可以由客戶端完成的任務通常稱為客戶端,而由服務器完成的任務稱為服務器端。服務器通常提供資源,例如文件、數(shù)據(jù)、互聯(lián)網(wǎng)訪問、外部存儲或處理能力。服務器放置一個或多個程序負責將這些服務分發(fā)給請求的客戶端。
客戶端和服務器以由通信協(xié)議定義的請求-響應消息傳遞模式進行通信,例如傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議 ( TCP/IP )。該協(xié)議定義了所使用的語言和對話模式。例如,TCP 保持客戶端和服務器之間的連接,直到消息交換結(jié)束。TCP 還確定如何分發(fā)應用程序數(shù)據(jù)、傳輸和接收數(shù)據(jù)包,以及管理任何丟棄的數(shù)據(jù)包。如果服務器一次接收到大量請求,則這些請求會在基于優(yōu)先級的調(diào)度系統(tǒng)中進行組織。使用客戶端訪問控制工具,用戶可以管理對服務器的訪問。
客戶端與服務器端
客戶端是發(fā)生在用戶端的動作或操作,而服務器端是指發(fā)生在服務器上的動作或操作。例如,JavaScript 腳本是客戶端的,因為它們由瀏覽器(即客戶端)執(zhí)行。通用網(wǎng)關(guān)接口腳本是服務器端的,因為它們在服務器上運行。
例如,服務器可以是應用服務器、單獨的計算機、數(shù)據(jù)庫服務器或Web 服務器。當程序或設(shè)備沒有資源來完成操作時,它將充當客戶端,向服務器發(fā)出請求,該操作將發(fā)生在服務器端。
客戶類型
下面檢查四種定義不同類型客戶端的方法:
- 厚客戶端。胖客戶端提供大部分資源和數(shù)據(jù)處理。這些客戶端僅輕微依賴服務器;相反,它們在客戶端執(zhí)行大多數(shù)操作。
- 瘦客戶端。這些輕量級客戶端嚴重依賴服務器獲取資源并執(zhí)行大部分數(shù)據(jù)處理。
- 混合客戶端。混合客戶端是瘦客戶端和胖客戶端的組合。這種類型的客戶端在本地處理數(shù)據(jù),但依賴于服務器來存儲持久數(shù)據(jù)。
- 零客戶端。零客戶端比瘦客戶端更纖薄且更具成本效益。這些客戶端設(shè)備不需要配置,也沒有存儲任何內(nèi)容。它們還比胖客戶端或瘦客戶端使用更少的電力。
客戶端-服務器示例
客戶端-服務器關(guān)系的示例包括 Web、文件和郵件服務器。Web 瀏覽器本質(zhì)上是一個客戶端,它從整個 Web 的服務器請求頁面。瀏覽器是發(fā)送請求的客戶端,而另一個位置的服務器返回超文本標記語言 (HTML) 文件。處理請求并發(fā)回 HTML 文件的計算機是服務器。
文件服務器是負責存儲和管理數(shù)據(jù)文件的計算機,使用戶能夠通過網(wǎng)絡(luò)共享信息而無需物理傳輸文件。文件服務器的示例包括網(wǎng)絡(luò)附加存儲設(shè)備或可以托管共享文件的單獨計算機。
文件傳輸協(xié)議是一種客戶端-服務器網(wǎng)絡(luò)協(xié)議,用于通過 TCP/IP 連接在計算機之間傳輸文件。客戶端-服務器協(xié)議依賴于客戶端和服務器之間的兩個通信通道——一個用于控制對話的命令通道和一個用于傳輸文件內(nèi)容的數(shù)據(jù)通道。